# Contributor: Eric Molitor <eric@molitor.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
pkgname=lld
pkgver=10.0.1
pkgrel=0
_llvmver=${pkgver%%.*}
pkgdesc="The LLVM Linker"
url="https://llvm.org"
arch="all !mips !mips64"
license="Apache-2.0"
makedepends="
	cmake
	libedit-dev
	llvm$_llvmver-dev
	llvm$_llvmver-static
	llvm$_llvmver-test-utils
	zlib-dev"
checkdepends="gtest gtest-dev bash"
subpackages="$pkgname-static $pkgname-dev"
source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/lld-$pkgver.src.tar.xz"
builddir="$srcdir/$pkgname-$pkgver.src"

build() {
	mkdir -p "$builddir"/build
	cd "$builddir"/build

	cmake .. \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_VERBOSE_MAKEFILE=OFF \
		-DCMAKE_C_FLAGS_MINSIZEREL_INIT="$CFLAGS" \
		-DCMAKE_CXX_FLAGS_MINSIZEREL_INIT="$CXXFLAGS -fpermissive" \
		-DCMAKE_EXE_LINKER_FLAGS_MINSIZEREL_INIT="$LDFLAGS -Wl,-z,stack-size=2097152" \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_SKIP_INSTALL_RPATH=ON \
		-DLLVM_INCLUDE_TESTS=ON
	make
}

check() {
	cd "$builddir/build"

	# ELF/eh-frame-hdr-augmentation.s is broken on armhf & armv7
	case "$CARCH" in
		armhf|armv7) rm ../test/ELF/eh-frame-hdr-augmentation.s;;
	esac

	# make check-lld doesn't like using system lit
	lit -sv \
		--param lld_site_config=$builddir/build/test/lit.site.cfg \
		--param lld_unit_site_config=$builddir/build/test/Unit/lit.site.cfg \
		$builddir/build/test

}

package() {
	cd "$builddir"/build

	make install DESTDIR="$pkgdir"
}

sha512sums="cc0d206739db4c3876eb4718690e11b3eb1a2278e0d4a17a9576eef2320a2e25e1f548768f74f0877e4d00ef50471af1ce179eae9e514d41a0d93285c537941a  lld-10.0.1.src.tar.xz"
